"""
成员属性：
一般情况下，写在__init__方法内
- 固定的属性
- 同时通过init方法的参数为属性赋值
- init方法一旦有形参,对象实例化的时候就必须提供实参
- 为了避免实例化的时候必须提供实参,init的形参总是有缺省值
成员方法：
    1.必须在类中
    2.类中的方法的第一个参数，必须是self
    固定的行为
self:
    比较的是内存地址
    哪个对象调用，self就指向哪个对象
    self 只能用于类里面
self仅出现在成员方法中，指代执行该方法的对象

"""
class People:
    def __init__(self,name,age,sex):# (构造方法)这个方法一般情况下，定义成员属性,__init__不属于真正的初始化对象，真正的是new
    # 成员属性：
    #     self.形参=属性
        self.name=name# 语法：self.成员属性名=值---->指向内存地址
        self.age=age
        self.sex=sex
    # 成员方法：
    def eat(self):
        print("成员方法")

    def showInfo(self):
        # 成员方法调用成员属性？通过self.成员属性名
        print(f"我叫{self.name},今年{self.age}岁,性别是{self.sex}")
p1=People("张三",13,"男")   #只有创建对象时候才会有内存地址生成,类不会生成内存地址
p1.showInfo()
# python的堆跟栈    https://zhuanlan.zhihu.com/p/646836597
